using MauiBuilder.Services;

namespace MauiBuilder.Platforms.iOS
{
    /// <summary>
    /// iOS平台前台服务实现
    /// 注意：iOS不支持真正的前台服务，这里提供一个空实现
    /// </summary>
    public class ForegroundServicePlatform : IForegroundService
    {
        /// <summary>
        /// 服务状态变化事件
        /// </summary>
        public event Action<bool>? ServiceStateChanged;
        
        /// <summary>
        /// 日志管理器
        /// </summary>
        private readonly LogManager _logManager = LogManager.Instance;

        /// <summary>
        /// 启动前台服务
        /// </summary>
        public async Task StartServiceAsync()
        {
            try
            {
                _logManager.LogInfo("iOS不支持前台服务，提供模拟实现");
                ServiceStateChanged?.Invoke(true);
                await Task.CompletedTask;
            }
            catch (Exception ex)
            {
                _logManager.LogInfo($"iOS启动前台服务失败: {ex.Message}");
                throw;
            }
        }

        /// <summary>
        /// 停止前台服务
        /// </summary>
        public async Task StopServiceAsync()
        {
            try
            {
                _logManager.LogInfo("iOS停止前台服务模拟实现");
                ServiceStateChanged?.Invoke(false);
                await Task.CompletedTask;
            }
            catch (Exception ex)
            {
                _logManager.LogInfo($"iOS停止前台服务失败: {ex.Message}");
                throw;
            }
        }

        /// <summary>
        /// 获取服务运行状态
        /// </summary>
        public bool IsServiceRunning()
        {
            return false; // iOS始终返回false，因为不支持真正的前台服务
        }

        /// <summary>
        /// 平台是否支持前台服务
        /// </summary>
        public bool IsForegroundServiceSupported()
        {
            return false; // iOS不支持前台服务
        }
    }
}